package team.knowers.qzh.qzhgrame.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import team.knowers.qzh.qzhgrame.dao.entity.SectionDO;
import team.knowers.qzh.qzhgrame.dto.req.*;
import team.knowers.qzh.qzhgrame.dto.resp.AllSectionRespDTO;
import team.knowers.qzh.qzhgrame.dto.resp.SectionDetailsRespDTO;
import team.knowers.qzh.qzhgrame.dto.resp.SectionPageRespDTO;

import java.util.List;

public interface SectionGrameService extends IService<SectionDO> {
    /**
     * 用户更新章节版本
     */
    int updateCourseContent(UpdateSectionReqDTO req);

    /**
     * 分页查询章节版本
     *
     * @param req
     * @return
     */
    IPage<SectionPageRespDTO> pageSection(PageSectionReqDTO req);

    /**
     * 创建章节
     */
    int addSection(AddSectionReqDTO req);

    /**
     * 删除章节/版本
     */
    int deleteSection(Long id);

    /**
     * 查询该单元用户所创作的所有章节
     */
    List<AllSectionRespDTO> showSection(Long id, Long authorId);

    /**
     * 创建版本
     */
    int addVersion(AddVersionReqDTO req);

    /**
     * 展示某作者创作所有版本
     */
    List<SectionDO> listOnesVersion(Long id);

    /**
     * 根据单元id获得章节目录
     * @param chapterId
     * @return
     */
    List<SectionDetailsRespDTO> getSectionDetailsById(Long chapterId);
}
